{\rtf1\ansi\ansicpg1252\cocoartf1138\cocoasubrtf320
{\fonttbl\f0\fnil\fcharset0 Monaco;}
{\colortbl;\red255\green255\blue255;\red153\green0\blue204;\red0\green51\blue255;\red153\green0\blue0;
\red102\green153\blue204;\red51\green153\blue102;}
\margl1440\margr1440\vieww10800\viewh8400\viewkind0
\deftab720
\pard\pardeftab720

\f0\fs22 \cf2 package\cf0  \{\
	\
	\cf3 import\cf0  com.transmote.flar.FLARManager;\
	\cf3 import\cf0  com.transmote.flar.marker.FLARMarker;\
	\cf3 import\cf0  com.transmote.flar.marker.FLARMarkerEvent;\
	\cf3 import\cf0  com.transmote.flar.utils.FLARManagerConfigLoader;\
	\cf3 import\cf0  com.transmote.flar.utils.geom.FLARPVGeomUtils;\
	\cf3 import\cf0  flash.display.DisplayObject;\
	\cf3 import\cf0  flash.display.Sprite;\
	\cf3 import\cf0  flash.events.Event;\
	\cf3 import\cf0  org.libspark.flartoolkit.support.pv3d.FLARCamera3D;\
	\cf3 import\cf0  org.papervision3d.lights.PointLight3D;\
	\cf3 import\cf0  org.papervision3d.objects.DisplayObject3D;\
	\cf3 import\cf0  org.papervision3d.objects.parsers.DAE;\
	\cf3 import\cf0  org.papervision3d.render.LazyRenderEngine;\
	\cf3 import\cf0  org.papervision3d.scenes.Scene3D;\
	\cf3 import\cf0  org.papervision3d.view.Viewport3D;\
	\
	[\cf3 SWF\cf0 (width=\cf4 "640"\cf0 , height=\cf4 "480"\cf0 , frameRate=\cf4 "30"\cf0 , backgroundColor=\cf4 "#FFFFFF"\cf0 )]\
	\
	\cf3 public\cf0  \cf2 class\cf0  multimarcador \cf3 extends\cf0  Sprite \{\
		\
		\cf3 private\cf0  \cf5 var\cf0  flarManager:FLARManager;\
		\cf3 private\cf0  \cf5 var\cf0  scene3D:Scene3D;\
		\cf3 private\cf0  \cf5 var\cf0  camera3D:FLARCamera3D;\
		\cf3 private\cf0  \cf5 var\cf0  viewport3D:Viewport3D;\
		\cf3 private\cf0  \cf5 var\cf0  renderEngine:LazyRenderEngine;\
		\cf3 private\cf0  \cf5 var\cf0  pointLight3D:PointLight3D;\
		\
		\cf3 private\cf0  \cf5 var\cf0  marker0:FLARMarker;\
		\cf3 private\cf0  \cf5 var\cf0  marker1:FLARMarker;\
		\
		\cf3 private\cf0  \cf5 var\cf0  modelunoContainer:DisplayObject3D;\
		\cf3 private\cf0  \cf5 var\cf0  modeldosContainer:DisplayObject3D;\
		\
		\cf3 public\cf0  \cf6 function\cf0  multimarcador () \{\
			\cf3 this\cf0 .flarManager = \cf3 new\cf0  FLARManager(\cf4 "models/flarConfig.xml"\cf0 );			\
			\cf3 this\cf0 .addChild(Sprite(\cf3 this\cf0 .flarManager.flarSource));			\
			\cf3 this\cf0 .flarManager.addEventListener(FLARMarkerEvent.MARKER_ADDED, \cf3 this\cf0 .onMarkerAdded);\
			\cf3 this\cf0 .flarManager.addEventListener(FLARMarkerEvent.MARKER_UPDATED, \cf3 this\cf0 .onMarkerUpdated);\
			\cf3 this\cf0 .flarManager.addEventListener(FLARMarkerEvent.MARKER_REMOVED, \cf3 this\cf0 .onMarkerRemoved);			\
			\cf3 this\cf0 .flarManager.addEventListener(Event.INIT, \cf3 this\cf0 .onFlarManagerInited);\
		\}\
		\
		\cf3 private\cf0  \cf6 function\cf0  onFlarManagerInited (evt:Event) :\cf3 void\cf0  \{\
			\cf3 this\cf0 .flarManager.removeEventListener(Event.INIT, \cf3 this\cf0 .onFlarManagerInited);\
			\
			\cf3 this\cf0 .scene3D = \cf3 new\cf0  Scene3D();\
			\
			\cf3 this\cf0 .camera3D = \cf3 new\cf0  FLARCamera3D(\cf3 this\cf0 .flarManager.cameraParams);\
			\
			\cf3 this\cf0 .viewport3D = \cf3 new\cf0  Viewport3D(\cf3 this\cf0 .stage.stageWidth, \cf3 this\cf0 .stage.stageHeight);\
			\cf3 this\cf0 .addChild(\cf3 this\cf0 .viewport3D);\
			\
			\cf3 this\cf0 .renderEngine = \cf3 new\cf0  LazyRenderEngine(\cf3 this\cf0 .scene3D, \cf3 this\cf0 .camera3D, \cf3 this\cf0 .viewport3D);\
			\
			\cf3 this\cf0 .pointLight3D = \cf3 new\cf0  PointLight3D();\
			\cf3 this\cf0 .pointLight3D.x = 1000;\
			\cf3 this\cf0 .pointLight3D.y = 1000;\
			\cf3 this\cf0 .pointLight3D.z = -1000;\
			\
			\cf5 var\cf0  uno:DAE = \cf3 new\cf0  DAE();\
			uno.load(\cf4 "models/vaca.dae"\cf0 );\
			uno.rotationY = -90;\
			uno.scale = 70;\
			uno.y = -8;\
			uno.z = 10;\
			\cf3 this\cf0 .modelunoContainer = \cf3 new\cf0  DisplayObject3D;\
			\cf3 this\cf0 .modelunoContainer.addChild(uno);\
			\cf3 this\cf0 .modelunoContainer.visible = \cf3 false\cf0 ;\
			\cf3 this\cf0 .scene3D.addChild(\cf3 this\cf0 .modelunoContainer);\
			\
			\cf5 var\cf0  dos:DAE = \cf3 new\cf0  DAE();\
			dos.load(\cf4 "models/vaca.dae"\cf0 );\
			dos.rotationY = -90;\
			dos.scale = 70;\
			dos.y = -8;\
			dos.z = 10;\
			\cf3 this\cf0 .modeldosContainer = \cf3 new\cf0  DisplayObject3D;\
			\cf3 this\cf0 .modeldosContainer.addChild(dos);\
			\cf3 this\cf0 .modeldosContainer.visible = \cf3 false\cf0 ;\
			\cf3 this\cf0 .scene3D.addChild(\cf3 this\cf0 .modeldosContainer);\
			\
			\cf3 this\cf0 .addEventListener(Event.ENTER_FRAME, \cf3 this\cf0 .onEnterFrame);\
		\}\
		\
		\cf3 private\cf0  \cf6 function\cf0  onMarkerAdded (evt:FLARMarkerEvent) :\cf3 void\cf0  \{\
			\cf3 switch\cf0 (evt.marker.patternId)\
			\{\
				\cf3 case\cf0  0:					\
					\cf3 this\cf0 .modelunoContainer.visible=\cf3 true\cf0 ;\
					\cf3 this\cf0 .marker0 = evt.marker;\
					\cf3 break\cf0 ;\
				\cf3 case\cf0  1:\
					\cf3 this\cf0 .modeldosContainer.visible=\cf3 true\cf0 ;\
					\cf3 this\cf0 .marker1 = evt.marker;\
					\cf3 break\cf0 ;			\
			\}\
		\}\
		\
		\cf3 private\cf0  \cf6 function\cf0  onMarkerUpdated (evt:FLARMarkerEvent) :\cf3 void\cf0  \{\
			\cf3 switch\cf0 (evt.marker.patternId)\
			\{\
				\cf3 case\cf0  0:					\
					\cf3 this\cf0 .modelunoContainer.visible=\cf3 true\cf0 ;\
					\cf3 this\cf0 .marker0 = evt.marker;\
					\cf3 break\cf0 ;	\
				\cf3 case\cf0  1:\
					\cf3 this\cf0 .modeldosContainer.visible=\cf3 true\cf0 ;\
					\cf3 this\cf0 .marker1 = evt.marker;\
					\cf3 break\cf0 ;\
			\}\
		\}\
		\
		\cf3 private\cf0  \cf6 function\cf0  onMarkerRemoved (evt:FLARMarkerEvent) :\cf3 void\cf0  \{\
			\cf3 switch\cf0 (evt.marker.patternId)\
			\{\
				\cf3 case\cf0  0:					\
					\cf3 this\cf0 .modelunoContainer.visible=\cf3 true\cf0 ;\
					\cf3 this\cf0 .marker0 = \cf3 null\cf0 ;\
					\cf3 break\cf0 ;	\
				\cf3 case\cf0  1:\
					\cf3 this\cf0 .modeldosContainer.visible=\cf3 true\cf0 ;\
					\cf3 this\cf0 .marker1 = \cf3 null\cf0 ;\
					\cf3 break\cf0 ;\
			\}\
		\}\
		\
		\cf3 private\cf0  \cf6 function\cf0  onEnterFrame (evt:Event) :\cf3 void\cf0  \{\
			\cf3 if\cf0  (\cf3 this\cf0 .marker0) \{\
				\cf3 this\cf0 .modelunoContainer.transform = FLARPVGeomUtils.convertFLARMatrixToPVMatrix(\cf3 this\cf0 .marker0.transformMatrix);\
			\}\
			\cf3 if\cf0  (\cf3 this\cf0 .marker1) \{\
				\cf3 this\cf0 .modeldosContainer.transform = FLARPVGeomUtils.convertFLARMatrixToPVMatrix(\cf3 this\cf0 .marker1.transformMatrix);\
			\}	\
			\cf3 this\cf0 .renderEngine.render();\
		\}\
	\}\
\}}